<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>bmqa_messageproperties Component</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="bdedox.css" rel="stylesheet" type="text/css"/>
    <style>
      div.hanging {
        padding-left: 0.75in;
        text-indent: -0.50in;
      }
      div.unhanging {
        text-indent:     0in;
      }
      a.glossary {
        font-weight: bold;
        font-style: italic;
      }
    </style>
</head>
<!--
<body onload='searchBox.OnSelectItem(0);'>
-->
<body>

<table border=2 cellspacing=0 cellpadding=0 align=center>
<tr>
 <td valign=top align=center>
 <p align=center><b><i>Quick Links:</i></b></p>
 </td>
 <td valign=top align=center>
 <p align=center>
<a class="qindex" href="group__bmqa.html" target="_blank">bmqa</a> | <a class="qindex" href="group__bmqpi.html" target="_blank">bmqpi</a> | <a class="qindex" href="group__bmqt.html" target="_blank">bmqt</a>
 </td>
 </tr>
 </table>

  </div>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="components.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="components.html"><span>Components</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a>  </div>
  <div class="headertitle">
<h1>Component bmqa_messageproperties<br/>
<small>
[<a class="el" href="group__bmqa.html">Package bmqa</a>]</small>
</h1>  </div>
</div>
<div class="contents">

<p>Provide a VST representing message properties.  
<a href="#_details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebmqp.html">bmqp</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebmqa.html">bmqa</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<dl class="user"><dt><b>Outline</b></dt><dd><ul>
<li>
<a href="#1">Purpose</a> </li>
<li>
<a href="#2">Classes</a> </li>
<li>
<a href="#3">Description</a> <ul>
<li>
<a href="#3.1">Restrictions on Property Names</a> </li>
<li>
<a href="#3.2">Restrictions on Property Values</a> </li>
</ul>
</li>
</ul>
</dd></dl>
<dl class="user"><dt><b></b></dt><dd></dd></dl>
<dl class="user"><dt><b></b></dt><dd><a class="anchor" id="purpose"></a> <a class="anchor" id="1"></a> </dd></dl>
<dl class="user"><dt><b>Purpose: </b></dt><dd>Provide a VST representing message properties. </dd></dl>
<dl class="user"><dt><b></b></dt><dd></dd></dl>
<dl class="user"><dt><b></b></dt><dd><a class="anchor" id="classes"></a> <a class="anchor" id="2"></a> </dd></dl>
<dl class="user"><dt><b>Classes: </b></dt><dd><table class="doxtable">
<tr>
<td><a class="el" href="classbmqa_1_1MessageProperties.html">bmqa::MessageProperties</a> </td><td>VST representing message properties.  </td></tr>
<tr>
<td><a class="el" href="classbmqa_1_1MessagePropertiesIterator.html">bmqa::MessagePropertiesIterator</a> </td><td>Mechanism to iterate over properties.  </td></tr>
</table>
</dd></dl>
<dl class="user"><dt><b></b></dt><dd></dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structbmqt_1_1PropertyType.html">bmqt::PropertyType</a> </dd></dl>
<dl class="user"><dt><b></b></dt><dd></dd></dl>
<dl class="user"><dt><b></b></dt><dd><a class="anchor" id="description"></a> <a class="anchor" id="3"></a> </dd></dl>
<dl class="user"><dt><b>Description: </b></dt><dd><code><a class="el" href="classbmqa_1_1MessageProperties.html">bmqa::MessageProperties</a></code> provides a VST representing message properties. Message properties are a collection of name-value pairs that producer can associate with a message, and consumer can retrieve from the corresponding message. In order to keep their usage flexible, no schema is enforced for the message properties, and their format (names and data types) should be negotiated by producers and consumers. Message properties can be used for routing, pipelining or filtering messages within the application. It can be efficient to specify such message attributes in the properties instead of the message payload, because application does not have to decode entire payload to retrieve these attributes. <code><a class="el" href="classbmqa_1_1MessagePropertiesIterator.html">bmqa::MessagePropertiesIterator</a></code> provides a mechanism to iterate over all the properties of a <code><a class="el" href="classbmqa_1_1MessageProperties.html">bmqa::MessageProperties</a></code> object. </dd></dl>
<dl class="user"><dt><b></b></dt><dd></dd></dl>
<dl class="user"><dt><b></b></dt><dd><a class="anchor" id="restrictions_on_property_names"></a> <a class="anchor" id="description.restrictions_on_property_names"></a> <a class="anchor" id="3.1"></a> </dd></dl>
<dl class="user"><dt><b>Restrictions on Property Names: </b></dt><dd></dd></dl>
<dl class="user"><dt><b></b></dt><dd><ul>
<li>
Length of a property name must be greater than zero and must <em>not</em> exceed <code><a class="el" href="classbmqa_1_1MessageProperties.html#a8ba892e6027fa425a05b500e2e5e461f">bmqa::MessageProperties::k_MAX_PROPERTY_NAME_LENGTH</a></code>  </li>
</ul>
</dd></dl>
<dl class="user"><dt><b></b></dt><dd><ul>
<li>
First character of the property name must be alpha-numeric.  </li>
</ul>
</dd></dl>
<dl class="user"><dt><b></b></dt><dd></dd></dl>
<dl class="user"><dt><b></b></dt><dd><a class="anchor" id="restrictions_on_property_values"></a> <a class="anchor" id="description.restrictions_on_property_values"></a> <a class="anchor" id="3.2"></a> </dd></dl>
<dl class="user"><dt><b>Restrictions on Property Values: </b></dt><dd></dd></dl>
<dl class="user"><dt><b></b></dt><dd><ul>
<li>
Length of a property value must be non-negative (ie, can be zero) and must <em>not</em> exceed <code><a class="el" href="classbmqa_1_1MessageProperties.html#a594b1b205d075625c208f5e9669025de">bmqa::MessageProperties::k_MAX_PROPERTY_VALUE_LENGTH</a></code>. Note that this restriction is obviously applicable to property values with types <code><a class="el" href="structbmqt_1_1PropertyType.html#a80bd813e5d93e5ec67b08cd4eda36107ac0cebabc367d40f51aaf46a06145e684">bmqt::PropertyType::e_STRING</a></code> and <code><a class="el" href="structbmqt_1_1PropertyType.html#a80bd813e5d93e5ec67b08cd4eda36107a48881c6b4451eda7fbf44897329c491f">bmqt::PropertyType::e_BINARY</a></code>, because for all other property value types, size is implicitly applicable based on the type (see 'Data Types and Size' section in <code><a class="el" href="structbmqt_1_1PropertyType.html">bmqt::PropertyType</a></code> component).  </li>
</ul>
</dd></dl>
<dl class="user"><dt><b></b></dt><dd></dd></dl>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Thu Jun 15 2023 11:58:51 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>
